package com.songlanyun.modules.sysbill.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.songlanyun.common.drive.RootEntity;
import com.songlanyun.common.enums.BillConstant;
import com.songlanyun.common.enums.OrderConstant;
import lombok.Data;

import java.math.BigDecimal;
import java.io.Serializable;
import java.util.Date;

/**
 * 系统帐单
 *
 * @author Mark
 * @email sunlightcs@gmail.com
 * @date 2020-11-20 09:53:18
 */
@Data
@TableName("sys_bill")
public class SysBill extends RootEntity<Long, SysBill> implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @TableId
    private Long id;
    /**
     * 出入帐类型(0:出账 1入账)
     */
    private BillConstant.BillMode billMode;
    /**
     * 金额
     */
    private BigDecimal money;
    /**
     * 时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    /**
     * 业务单号
     */
    private String businessCode;
    /**
     * 支付方式（0余额，1微信，2支付宝，3银行线下）
     */
    private OrderConstant.PayMode payMode;
    /**
     * 流水号（第三方支付单号）
     */
    private String thirdPayCode;
    /**
     * 账单类型 交易类型
     * 0余额充值，
     * 1购买商品或服务,
     * 2退款，
     * 3商家所得提现，
     * 4会员分佣金提现
     */
    private BillConstant.BillType billType;

    /**
     * 收款人
     */
    private String payee;
    /**
     * 提现账户
     */
    private String withdrawAccount;
    /**
     * 提现手机号
     */
    private String withdrawMobile;
    /**
     * 商家名称
     */
    private String shopName;
    /**
     * 银行名称
     */
    private String bankName;
    /**
     * 会员手机号
     */
    private String userMobile;

    @Override
    public Long getIdentity() {
        return id;
    }
}
